package com.czxy.service;

import com.czxy.dao.NewsMapper;
import com.czxy.pojo.News;
import com.czxy.pojo.group.ConditionResult;
import com.czxy.vo.SearchRequest;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

/**
 * 网站快报 Service
 * @author Liuyunqin 17674029449@163.com
 * @date 2018/12/20 8:42
 */
@Service
@Transactional
public class NewsService {

    @Autowired
    private NewsMapper newsMapper;

    /**
     * 查询所有快报
     * @return
     */
    public List<News> findAllNews(){
        List<News> news = newsMapper.selectAll();
        return news;
    }


    /**
     * 条件查询查询所有的网站快报 （分页 + 排序）
     * @param request
     * @return
     */
    public ConditionResult findNewsByCondition(SearchRequest request){
        //1. 分页功能
        // 第一个参数：页码
        // 第二个参数：每页条数
        // 这句代码是它后边出现的第一个sql语句加分页效果（只作用以后出现的第一个sql语句）
        PageHelper.startPage(request.getPage(),request.getLimit());

        //2. 排序功能
        // 参数拼接： 排序的字段 + 空格 + 排序方式
        Example example = new Example(News.class);
        example.setOrderByClause(request.getSort_by()+" "+request.getSort_way());

        //3. 执行查询
        List<News> news = newsMapper.selectByExample(example);

        //4. 组装返回结果
        ConditionResult cr = new ConditionResult();
        cr.setErrno(0);
        cr.setErrmsg("成功");
        cr.setData(news);
        cr.setTotal(newsMapper.selectAll().size());

        return cr;
    }
}
